#include <bits/stdc++.h>

using namespace std;

float T,n,m,l,v,d[100001],vc[100001],a[100001],p[100001],z[100001],r[100001],s,x,cnt;
bool g[100001],k[100001],b;
int c;

int main()
{
    freopen("detect.in","r",stdin);
    freopen("detect.out","w",stdout);
    cin>>T;
    for(int i=1;i<=T;i++)
    {
        s=0;
        cin>>n>>m>>l>>v;
        for(int j=1;j<=n;j++)
        {
            cin>>d[j]>>vc[j]>>a[j];
        }
        for(int j=1;j<=n;j++)
        {
            x=(v*v-vc[j]*vc[j])/(2*a[j]);
            if(a[j]>0)
            {
                if(vc[j]>v)
                {
                    z[j]=d[j];
                    r[j]=l;
                }
                else
                {
                    if(d[j]+x>l)
                    {
                        z[j]=-1;
                        r[j]=-1;
                    }
                    else
                    {
                        z[j]=d[j]+x;
                        r[j]=l;
                    }
                }
            }
            else if(a[j]==0)
            {
                if(vc[j]>v)
                {
                    z[j]=d[j];
                    r[j]=l;
                }
                else
                {
                    z[j]=-1;
                    r[j]=-1;
                }
            }
            else
            {
                if(vc[j]<v)
                {
                    z[j]=-1;
                    r[j]=-1;
                }
                else
                {
                    if(d[j]+x>l)
                    {
                        z[j]=d[j];
                        r[j]=l;
                    }
                    else
                    {
                        z[j]=d[j];
                        r[j]=d[j]+x;
                    }
                }
            }
        }
        for(int j=1;j<=m;j++)
        {
            cin>>c;
            p[c]=1;
        }
        for(int j=1;j<=n;j++)
        {
            for(int o=z[j];o<=r[j];o++)
            {
                if(p[o]==1)
                {
                    s++;
                    g[j]=1;
                    break;
                }
            }
        }
        for(int j=1;j<=n;j++)
        {
            for(int o=z[j];o<=r[j];o++)
            {
                if(p[o]==1)
                {
                    p[o]++;
                }
                else if(p[o]==2)
                {
                    b=1;
                    p[o]++;
                }
            }
            if(b==1)
            {
                cnt++;
                b=0;
            }

        }
        cout<<s<<" "<<m-cnt<<endl;
    }
    fclose(stdin);
    fclose(stdout);
    return 0;
}
